<?php

namespace App\Http\Controllers\Home;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use DB;
use Hash;
use Mail;
use Storage;
use App\Http\Controllers\Home\LoginController;
class Safety2Controller extends Controller
{
    /**
     * 帐号安全的相关验证
     * 
     * @return [type] [description]
     */
    public function getIndex(){
        // 从session获取登录用户的id
        $id = session('home_userid');
        // 通过用户id获取用户的相关信息
        $information = DB::table('tbl_home_user') -> where('id',$id) -> first();
        $information2 = DB::table('tbl_home_userdetails') -> where('uid',$id) ->first();
        // 判断用户是否绑定了手机 绑定了积分+25 没绑定为0
        if(!empty($information['phone'])){
            $phone = 25;
        }else{
            $phone = 0;
        }
        // 判断用户是否绑定了邮箱 绑定了积分+25 没绑定为0
        if(!empty($information['email'])){
            $email = 25;
        }else{
            $email = 0;
        }
        // 通过获取到的信息查询数据库此用户的相关信息
        $score = DB::table('tbl_safety_score') -> where('uid',$id) ->first();
        // 判断数据库是否有用户绑定的验证信息 
        if(empty($score)){
             // 数据库没有此用户的验证相关信息则将用户安全积分插入数据库
            $score = DB::table('tbl_safety_score') -> insert(['uid'=>$id,'phone'=>$phone,'email'=>$email]);           
        }
        // 如果数据库有此用户验证的相关信息则计算积分总和
         $score = $score['pay'] + $score['phone'] + $score['email'] + $score['idcard']; 
        // 替换手机号的第四位到第七位为*保护用户信息的安全 
         $phone = substr_replace($information['phone'], '****', 3,4);
         // 将数据压入数组
         $information['phone'] = $phone;
        // 将用户的信息传送给模版展示
        return view('/home/safety2/index',['information'=>$information,'information2'=>$information2,'score'=>$score]);
    }

    /**
     *  支付密码的验证
     *
     *  设置支付密码
     */
    public function getSetpay(){
        // echo  222;
        return view('/home/safety2/setpay');
    }

    /**
     * 支付密码验证
     * 
     * 将用户信息返回模版
     * @return [type] [description]
     */
    public function getEditpay(){
        // 从session获取登录用户的id
        $id = session('home_userid');
         // 通过用户id获取用户的相关信息
        $information = DB::table('tbl_home_user') -> where('id',$id) -> first();
        // 替换手机号的第四位到第七位为*保护用户信息的安全 
        $phone = substr_replace($information['phone'], '****', 3,4);
        // 返回页面 
        return view('/home/safety2/setpay',['phone'=>$phone,'phone2'=>$information['phone'],'paypass'=>$information['paypass']]);
    }

    /**
     *  手机短信接口
     * 
     */

    public function postDopay(){ 
        //短信接口地址
        $target = "http://106.ihuyi.cn/webservice/sms.php?method=Submit";
        //获取手机号
        $mobile = $_POST['mobile'];
        //生成的随机数
        session(['phone_code'=>rand(1000,9999)]);
        $mobile_code = session('phone_code');
        if(empty($mobile)){
            exit('手机号码不能为空');
        }
        $post_data = "account=C72625550&password=bb9085a02bdbdebed6ccfac19013d84f&mobile=".$mobile."&content=".rawurlencode("您的验证码是：".$mobile_code."。请不要把验证码泄露给其他人。");
        //用户名请登录用户中心->验证码、通知短信->帐户及签名设置->APIID
        //查看密码请登录用户中心->验证码、通知短信->帐户及签名设置->APIKEY
        $gets =  LoginController::xml_to_array(LoginController::Post($post_data, $target));

        echo $gets['SubmitResult']['msg'];
    }

    /**
     *
     *  支付密码修改
     * 
     */

    public function postEdit(Request $request){
        $req = $request->all();
        // 验证码判断
        if(session('phone_code') != $req['code']){
            return back() -> withInput() -> with('error','验证码输入错误,请重试');
        }else{
            // 给密码哈希加密
            // $req['paypass'] = Hash::make($req['paypass']);
            $res = DB::table('tbl_home_user') -> where('phone',$req['phone']) -> update(['paypass'=>$req['paypass']]);
            // dd($res);
            if($res){
                return redirect('/home/safety2/editpay') -> with('success','支付密码修改成功');
            }else{
                return redirect('/home/safety2/setpay') -> with('error','支付密码修改失败，请重试');
            }
        }
    }


    /**
     * 查询用户信息返回模版
     * 
     * @return [type] [description]
     */
    public function getEditphone(){
        // 从session获取登录用户的id
        $id = session('home_userid');
        // 通过用户id获取用户的相关信息
        $information = DB::table('tbl_home_user') -> where('id',$id) -> first();
        if($information['phone']){
            // 替换手机号的第四位到第七位为*保护用户信息的安全 
            $phone = substr_replace($information['phone'], '****', 3,4);
            $information['phone1'] = $phone;
        }

        // dd($information);
        return view('/home/safety2/setphone',['info'=>$information]);
    }


    /**
     * 更换手机绑定
     * 
     * @param  Request $request [description]
     * @return [type]           [description]
     */
    public function postEditphone(Request $request){
        // 从session获取登录用户的id
        $id = session('home_userid');
        $req = $request->all();
        // 验证码判断
        if(session('phone_code') != $req['code']){
            return back() -> withInput() -> with('error','验证码输入错误,请重试');
        }else{
            $res = DB::table('tbl_home_user') -> where('id',$id) ->update(['phone'=>$req['phone']]);
            if($res){
                return redirect('/home/safety2/index') -> with('success','修改成功');
            }else{
                return back() -> with('error','修改失败，请重试');
            }
        }
    }


    public function getIdcard(){
        // 从session获取登录用户的id
        $username = session('homeindex_username');
        // dd($id);
        return view('/home/safety2/idcard',['username'=>$username]);
    }

    public function postEditidcard(Request $req){
        $req = $req -> all();
        // 从session获取登录用户的id
        $id = session('home_userid');
        // var_dump($req);
        // var_dump($id);
        $res = DB::table('tbl_home_userdetails') -> where('uid',$id) ->update(['idname'=>$req['idname'],'idcard'=>$req['idcard']]);
        // dd($res);
        if($res>0){

            return redirect('/home/safety2/index');
        }else{
            return back() -> with('认证失败。请重试');
        }
    }

    public function getEmail(){
        return view('/home/safety2/email');
    }

    static public function email($email,$id,$rand){
        Mail::send('home.safety2.email2', ['id' => $id,'rand' => $rand,'email' => $email], function ($m) use ($email) {
            $m->to($email)->subject('E-Girl 邮箱验证');
        });
    }


    public function getSetemail(Request $request){
        // 从session获取登录用户的id
        $id = session('home_userid');
        // $res = DB::table('tbl_home_user') -> where('id',$id) -> first();
        $email = $_GET['email'];
        $rand = rand(1000,9999);
        $request = $request -> all();
        session(['rand'=>$rand]);
        // 调用发送邮件的方法
        if(self::email($email,$id,$rand)){
             echo '验证码已发送，请登录邮箱查看';
        }
       
    }

    public function postUpdateemail(Request $request){
        $req = $request -> all();
        $rand = session('rand');
        $id = session('home_userid');
        // var_dump($rand);
        // dd($req);
        if($req['code'] == $rand){
            $res = DB::table('tbl_home_user') -> where('id',$id) -> update(['email'=>$req['email']]);
            if($res){
                return redirect('/home/safety2/email') -> with('success','修改成功！');
            }else{
                return back() -> with('error','修改失败，请重试');
            }
        }else{
            return back() -> with('error','验证码错误，请重试');
        }
    }
}
